﻿using SistemaAcademico.Util;
using SistemaAcademicoTCCDAO;
using System;
using System.Collections.Generic;
using System.Data.Objects.DataClasses;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace SistemaAcademico.Pages
{
    public partial class NovaMateria : System.Web.UI.Page
    {
        #region EVENTS
        protected void Page_Load(object sender, EventArgs e)
        {
            //btnAdd.Attributes.Add("onclick", "move(" + lstProfessores.ClientID + "," + lstProfessoresHabilitados.ClientID + ")");

            //btnRem.Attributes.Add("onclick", "move(" + lstProfessoresHabilitados.ClientID + "," + lstProfessores.ClientID + ")");

            btnAdd.ServerClick += btnAdd_ServerClick;
            btnRem.ServerClick += btnRem_ServerClick;
        }
        protected void btnContinuar_Click(object sender, EventArgs e)
        {

            if (Valida())
            {
                try
                {
                    SATCCEntities container = new SATCCEntities();
                    MateriaSet materia = new MateriaSet();

                    materia.nmMateria = txtNomeMateria.Text;
                    materia.dsCargaHorariaSemestral = Convert.ToInt32(txtCargaHoraria.Text);
                    foreach (ListItem item in lstProfessoresHabilitados.Items)
                    {
                        Int32 professorId = Convert.ToInt32(item.Value);
                        var prof = container.ProfessorSet.Where(p => p.Id == professorId).First();
                        materia.ProfessorSet.Add(prof);
                    }
                    container.MateriaSet.AddObject(materia);
                    container.SaveChanges();
                    Response.Redirect("~/Pages/Materia.aspx");
                }
                catch (Exception)
                {
                    Response.Write("<script>alert('Ocorreu um erro no cadastro! Tente novamente. Se o problema persistir, entre em contato com o suporte.');</script>"); ;
                }
            }

        }
        void btnRem_ServerClick(object sender, EventArgs e)
        {
            Util.Transfer.TransferListItem(ref lstProfessoresHabilitados, ref lstProfessores);
        }

        void btnAdd_ServerClick(object sender, EventArgs e)
        {
            Util.Transfer.TransferListItem(ref lstProfessores, ref lstProfessoresHabilitados);
        }
        #endregion

        #region METHODS


        bool Valida()
        {
            if (String.IsNullOrEmpty(txtNomeMateria.Text))
                return false;

            if (String.IsNullOrEmpty(txtCargaHoraria.Text))
                return false;

            return true;
        }

        #endregion

    }
}